home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Tools / Dev / mamesrc / src / amiga / main.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-12-03  |  4.0 KB  |  153 lines

  1. #ifndef MAIN_H
  2. #define MAIN_H
  3. /**************************************************************************
  4.  *
  5.  * Copyright (C) 1999 Mats Eirik Hansen (mats.hansen@triumph.no)
  6.  *
  7.  * $Id: main.h,v 1.1 1999/04/28 18:54:28 meh Exp $
  8.  *
  9.  * $Log: main.h,v $
  10.  * Revision 1.1  1999/04/28 18:54:28  meh
  11.  * Initial revision
  12.  *
  13.  *
  14.  *************************************************************************/
  15.  
  16. #define TRACE 0
  17.  
  18. #include <dos/dos.h>
  19. #include <intuition/intuitionbase.h>
  20.  
  21. #include "driver.h"
  22. #include "osdepend.h"
  23.  
  24. #include "config.h"
  25. #include "video.h"
  26. #include "inputs.h"
  27.  
  28. #define AUDIO_CHANNELS      16
  29. #define AUDIO_BUFFER_LENGTH 2048
  30.  
  31. #if TRACE
  32. #define TRACE_ENTER(f) puts("Entering "##f"()");
  33. #define TRACE_LEAVE(f) puts("Leaving "##f"()");
  34. #else
  35. #define TRACE_ENTER(f)
  36. #define TRACE_LEAVE(f)
  37. #endif
  38.  
  39. extern struct ExecBase      *SysBase;
  40. extern struct DosLibrary    *DOSBase;
  41. extern struct Library       *GfxBase;
  42. extern struct Library       *CyberGfxBase;
  43. extern struct IntuitionBase *IntuitionBase;
  44. extern struct Library       *GadToolsBase;
  45. extern struct Library       *AslBase;
  46. extern struct Library       *KeymapBase;
  47. extern struct Library       *TimerBase;
  48. #ifdef POWERUP
  49. extern struct Library       *PPCLibBase;
  50. #endif
  51.  
  52. extern LONG                 Width;
  53. extern LONG                 Height;
  54. extern struct Audio         *Audio;
  55. extern struct Video         *Video;
  56. extern struct Inputs        *Inputs;
  57. extern struct AChannelArray *ChannelArray[2];
  58. extern struct VPixelArray   *PixelArray[2];
  59. extern struct VDirectArray  *DirectArray;
  60. extern LONG                 CurrentArray;
  61. extern BYTE                 *Keys;
  62. extern struct IPort         *Port1;
  63. extern struct IPort         *Port2;
  64.  
  65. LONG  VideoOpen(LONG width, LONG height, LONG left, LONG top, LONG right, LONG bottom, LONG dirty);
  66. void  VideoClose(void);
  67. void  InputUpdate(LONG wait);
  68.  
  69. #define CATCOMP_NUMBERS
  70. #include "messages.h"
  71.  
  72. #ifdef POWERUP
  73. extern struct GameDriver **Drivers;
  74.  
  75. #define M68k_MSG_STARTUP   0
  76. #define M68k_MSG_CONFIG    1
  77. #define M68k_MSG_VIDEODATA 2
  78. #define M68k_MSG_FILE      3
  79. #define M68k_MSG_FRAMEDATA 4
  80. #define M68k_MSG_QUIT      5
  81. #define M68k_MSG_SOUND     6
  82.  
  83. struct MsgStartupData
  84. {
  85.   void  *M68kPort;
  86.   LONG  Version;
  87.   LONG  Revision;
  88. };
  89.  
  90. #define M68k_MSGDATA_CHANNELARRAY1    0
  91. #define M68k_MSGDATA_CHANNELARRAY2    1
  92. #define M68k_MSGDATA_CHANNELARRAYSIZE 2
  93. #define M68k_MSGDATA_CONFIG           3
  94.  
  95. #define M68k_MSGDATA_RESULT         0
  96. #define M68k_MSGDATA_WIDTH          1
  97. #define M68k_MSGDATA_HEIGHT         2
  98. #define M68k_MSGDATA_KEYS           3
  99. #define M68k_MSGDATA_PORT1          4
  100. #define M68k_MSGDATA_PORT2          5
  101. #define M68k_MSGDATA_PIXELARRAY1    6
  102. #define M68k_MSGDATA_PIXELARRAY2    7
  103. #define M68k_MSGDATA_DIRECTARRAY    8
  104.  
  105. #define M68k_MSGSIZE_VIDEODATA  (9*sizeof(LONG))
  106. #define M68k_MSGSIZE_CONFIG     ((3+CFG_ITEMS)*sizeof(LONG))
  107. #define M68k_MSGSIZE_MAX        M68k_MSGSIZE_CONFIG
  108.  
  109. #define PPC_MSG_READY          0
  110. #define PPC_MSG_VIDEOOPEN      1
  111. #define PPC_MSG_VIDEOCLOSE     2
  112. #define PPC_MSG_INPUTUPDATE    3
  113. #define PPC_MSG_SETPIXELFRAME  4
  114. #define PPC_MSG_SETDIRECTFRAME 5
  115. #define PPC_MSG_OPENFILETYPE   6
  116. #define PPC_MSG_CLOSEFILE      7
  117. #define PPC_MSG_UCLOCK         8
  118. #define PPC_MSG_QUIT           9
  119. #define PPC_MSG_READSOUND      10
  120. #define PPC_MSG_LOADSOUND      11
  121.  
  122. #define PPC_MSGDATA_DRIVERS 0
  123.  
  124. #define PPC_MSGDATA_WIDTH  0
  125. #define PPC_MSGDATA_HEIGHT 1
  126. #define PPC_MSGDATA_LEFT   2
  127. #define PPC_MSGDATA_TOP    3
  128. #define PPC_MSGDATA_RIGHT  4
  129. #define PPC_MSGDATA_BOTTOM 5
  130. #define PPC_MSGDATA_DIRTY  6
  131.  
  132. #define PPC_MSGDATA_DIRNAME  0
  133. #define PPC_MSGDATA_FILENAME 4
  134. #define PPC_MSGDATA_MODE     8
  135. #define PPC_MSGDATA_TYPE     9
  136.  
  137. #define PPC_MSGDATA_SAMPLE     0
  138. #define PPC_MSGDATA_RESOLUTION 1
  139. #define PPC_MSGDATA_LENGTH     2
  140. #define PPC_MSGDATA_FREQUENCY  3
  141. #define PPC_MSGDATA_VOLUME     4
  142.  
  143. #define PPC_MSGSIZE_VIDEOOPEN    (7*sizeof(LONG))
  144. #define PPC_MSGSIZE_OPENFILETYPE (10*sizeof(LONG))
  145. #define PPC_MSGSIZE_LOADSOUND    (5*sizeof(LONG))
  146. #define PPC_MSGSIZE_MAX          PPC_MSGSIZE_OPENFILETYPE
  147.  
  148. #else
  149. #define Drivers (drivers)
  150. #endif
  151.  
  152. #endif
  153.